const app = getApp()
Page({
  data: {
    mobile: '18899996666', // 测试用免输手机号
    code: '',
    countDownVisible: false,
    redirectURL: ''
  },

  countDownChange(ev) {
    this.setData({
      timeData: ev.detail,
      countDownVisible: ev.detail.minutes === 1 || ev.detail.seconds > 0,
    })
  },

  onLoad(ev) {
    console.log(ev);
    this.setData({
      redirectURL: ev.redirectURL
    })
    // 此处 redirectURL 无需页面渲染时 可使用 this.redirectURL 进行保存传递，节省性能
    // this.redirectURL: ev.redirectURL
  },

  // 验证手机号格式
  verifyMobile(mobile) {
    // 宽松的验证规则
    const reg = /^[1][3-8][0-9]{9}$/
    // 正则验证（去除两端空格）
    const valid = reg.test(mobile)
    // 验证结果提示
    if (!valid) wx.utils.toast('请填写正确的手机号')
    // 返回验证结果
    return valid
  },

  async getCode() {
    const mobile = this.data.mobile.trim()
    // 手机号验证不通过 👇
    if (!this.verifyMobile(mobile)) return
    // console.log('手机号验证通过')
    // 反之通过 => 发送请求
    const res = await wx.http.get('/code', { mobile })
    // console.log(res);
    const { code, data } = res
    if (code !== 10000) {
      wx.utils.toast("发送失败")
    } else {
      wx.utils.toast('发送成功,请查收短信')
      // 开始倒计时
      this.setData({
        countDownVisible: true,
        code: data.code
        // 测试用自动填充验证码，实际则需要copy剪切板（前提获取到用户权限许可）
      })
    }
    // console.log(data);

  },
  // 进行验证码校验
  verifyCode(code) {
    // const code = this.data.code.trim()
    const reg = /^[0-9]{6}$/
    const valid = reg.test(code)
    if (!valid) wx.utils.toast('请填写格式正确的 验证码')
    // 返回验证结果
    return valid
  },

  async submitForm() {
    // 获取手机号
    const mobile = this.data.mobile.trim()
    // 获取验证码
    const code = this.data.code.trim()
    // 逐个验证表单数据
    if (!this.verifyMobile(mobile)) return
    if (!this.verifyCode(code)) return
    // 调用接口登录/注册
    const res = await wx.http.post('/login', { mobile, code })
    console.log(res);
    // 校验数据是否合法
    if (res.code !== 10000) return wx.utils.toast('请检查验证码是否正确!')
    // const token = 'Bearer ' + res.data.token
    // // 本地存储 token
    // wx.setStorageSync("token", token);
    // // 更新全局 token
    // app.token = token
    app.setToken(res.data.token, res.data.refreshToken)
    // 重定向跳转
    // 如果之前有带进来的目的地地址, 直接跳转, 否则去首页（谨慎执行） 
    wx.redirectTo({
      url: this.data.redirectURL || "/page/index/index"
      // url: redirectURL || "/page/index/index"
    });
  }
})
